#ifdef BUILD_DEBUG
#define TP_LOG_DEBUG(fmt, ...)  \
    printk("[DEBUG][%s:%d] " fmt "\n", __func__, __LINE__, ##__VA_ARGS__);
#else
#define TP_LOG_DEBUG(fmt, ...)  \
    printk("[DEBUG][%s:%d] " fmt "\n", __func__, __LINE__, ##__VA_ARGS__);
#endif

#define TP_LOG_INFO(fmt, ...)  \
    printk("[INFO][%s:%d] " fmt "\n", __func__, __LINE__, ##__VA_ARGS__);

#define TP_LOG_WARNING(fmt, ...)  \
    printk("[WARNING][%s:%d] " fmt "\n", __func__, __LINE__, ##__VA_ARGS__);

#define TP_LOG_ERROR(fmt, ...)  \
    printk("[ERROR][%s:%d] " fmt "\n", __func__, __LINE__, ##__VA_ARGS__);

#define TP_CHECK_EXPRESSION(expression, action)  \
    if (expression) {    \
        action;             \
    }

#define TP_OK    0
#define TP_ERROR 1
